完成了註冊,那下一步呢 ?
我們先從登出開始,因為比較簡單 (誤
那流程大致上都是一樣的
再幫大家提醒一下
先設計 logout form 的HTML
這次記得要餵 csrf 的 token
<form method="POST" action="/logout/post">
<li><a class="auth"><button class="btn btn-primary">LogOut</button></li>
{% csrf_token %}
</form>
接著設定 url
from classes.views import hello_world, index, get_signup, post_signup, post_logout
url(r'^logout/post',post_logout)
再來是view
django原本就有logout函式可以直接用,傳request
logout完看你要去哪個頁面,我們這邊讓他回index首頁
#view.py
def post_logout(request):
auth.logout(request)
return redirect('/index')
補:如果跳出不認識redirect,請記得import
from django.shortcuts import render, redirect
接著就可以測試看看囉!
( 可以先從 admin 登入,再用 HTML 的 logout button log out)
成功 Log out 後,接下來寫 Log in ...
一樣設計 login form 的 HTML
也要記得 CSRF 的 token
<form method="POST" action="/login/post" class="form-inline my-2 my-lg-0">
<input class="form-control mr-sm-2" type="text" name="email" placeholder="Email" >
<input class="form-control mr-sm-2" type="password" name="password" placeholder="Password" >
<button class="btn btn-success" type="submit">Sign in</button> 
<a href="/signup"><button class="btn btn-primary" type="button">Register</button></a>
{% csrf_token %}
</form>
目前的 urlpatterns 全部內容為:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^hellonuts/$', hello_world),
url(r'^index/',index),
url(r'^signup$',get_signup),
url(r'^signup/post',post_signup),
url(r'^login/post',post_login), ##新增這筆
url(r'^logout/post',post_logout)
]
最後是 view 的設定
我們要傳email跟password做比對,authenticate傳回user檢查
def post_login(request):
email = request.POST['email']
password = request.POST['password']
user = authenticate(email=email,password=password)
if user is not None:
auth.login(request, user)
return redirect('/index',locals())
else: #帳密錯
return redirect('/index',locals())
寫完後,就可以來測試整個會員的流程
希望大家都可以順利,會員系統以後就能快速開發囉 !